Introdução à Ciência dos Dados - Aula 5

Mestrado Profissional em Administração

Prof. Washington Santos da Silva

25/04/2023

Objetivos

Análise Exploratória de Dados: Visão Geral

– Wickham & Grolemund, Visualize

Import: importar/inserir seus dados no R.

Tidy: Armazenar seus dados em um formato consistente.

Transform: – criando novas variáveis a partir das já existentes e sumarizar informações.

Visualize: Representar visualmente seus dados.

Esta parte do livro mostra como usar a visualização e a transformação para explorar dados de maneira sistemática.

EDA é um ciclo iterativo no qual:

- Geramos perguntas sobre os dados.

- Procuramos por respostas visualizando, transformando e modelando os 
  dados.

- Usamos o que aprendemos para refinar as perguntas e/ou gerar novas      
  perguntas.

- A EDA não é um processo formal com um conjunto estrito de regras.

- Durante as fases iniciais da EDA, devemos nos sentir livres para 
  investigar quaisquer ideias que surjam.

- Algumas ideias irão gerar frutos, outras serão descartadas.

- Na medida em que a exploração continua, devemos nos focar em algumas 
  questões e áreas mais relevantes e produtivas.

A EDA é uma parte importante de qualquer análise de dados:

Variabilidade/Variação

Dois tipos de perguntas sobre os dados sempre úteis para fazer descobertas:

  1. Que tipo de variação ocorre dentro das variáveis?

  2. Que tipo de covariação ocorre entre as variáveis?

O restante desta aula foca-se nestas duas perguntas.

Análise Exploratória Numérica

Análise Exploratória Gráfica

Análise Exploratória Gráfica: Visualizando distribuições

Características observáveis na distribuição de variáveis numéricas

Por que visualizar a distribuição dos dados?

Visualizando distribuições: Histograma

h1 <- ggplot(carteira, aes(x = VALE)) + geom_histogram()
h1

Customizando um Histograma

h1c <- ggplot(carteira, aes(x = VALE)) +
  geom_histogram() +
  labs(x = "Retornos",
       y = "Frequência",
       title = "Vale: Retornos das Ações") + 
  xlim(-0.3, 0.3)
h1c

Histograma

h2 <- ggplot(carteira, aes(x = PETR4.SA)) + geom_histogram() 
h2

Customizando:

h2c <- ggplot(carteira, aes(x = PETR4.SA)) +
  geom_histogram() +
  labs(x = "Retornos",
       y = "Frequência",
       title = "Petrobrás: Retornos das Ações") + 
  xlim(-0.3, 0.3)
h2c

h3 <- ggplot(carteira, aes(x = WEGE3.SA)) + geom_histogram()
h3

Customizando

h3c <- ggplot(carteira, aes(x = WEGE3.SA)) +
  geom_histogram() +
  labs(x = "Retornos",
       y = "Frequência",
       title = "WEG: Retornos das Ações") + 
  xlim(-0.3, 0.3)
h3c

library(patchwork)
painel01 <- h1c / h2c / h3c
painel01

library(patchwork)
painel01 <- (h1c + h2c + h3c) + plot_layout(nrow = 2)
painel01

Densidade Empírica

d1 <- ggplot(carteira, aes(x = VALE)) + geom_density()
d1

Customizando

d1c <- ggplot(carteira, aes(x = VALE)) +
  geom_density() +
  labs(x = "Retornos",
       y = "Densidade",
       title = "Vale: Retornos das Ações") +
  xlim(-0.3, 0.3)
d1c

Densidade Empírica

d2 <- ggplot(carteira, aes(x = PETR4.SA)) + geom_density()
d2

Customizando

d2c <- ggplot(carteira, aes(x = PETR4.SA)) +
  geom_density() +
  labs(x = "Retornos",
       y = "Densidade",
       title = "Petrobrás: Retornos das Ações") + 
  xlim(-0.3, 0.3)
d2c

Densidade Empírica

d3 <- ggplot(carteira, aes(x = WEGE3.SA)) + geom_density()
d3

Customizando

d3c <- ggplot(carteira, aes(x = WEGE3.SA)) +
  geom_density() +
  labs(x = "Retornos",
       y = "Densidade",
       title = "WEG: Retornos das Ações") +
  xlim(-0.3, 0.3)
d3c

Densidade Empírica: Múltiplos gráficos em um painel

library(patchwork)
painel02 <- d1c / d2c / d3c
painel02

Densidade Empírica: Múltiplos gráficos em um painel

painel02 <- (d1c + d2c + d3c) + plot_layout(nrow = 2)
painel02

Histograma com Densidade Empírica

h1_d <- ggplot(carteira, aes(x = VALE)) + 
            geom_histogram(aes(y = ..density..)) +
            geom_density(col = "blue", size = 1.5)
h1_d

Visualizando distribuições: Boxplot

Boxplot

b1 <- ggplot(carteira, aes(x = VALE)) + geom_boxplot()
b1

Boxplot: coord_flip() inverte a orientação

b1_inv <- ggplot(carteira, aes(x = VALE)) + geom_boxplot() + coord_flip()
b1_inv

Customizando

b1c <- ggplot(carteira, aes(x = VALE)) +
        geom_boxplot() +
        labs(x = "Retornos",
             y = NULL,
             title = "Vale: Retornos das Ações") +
        xlim(-0.3, 0.3)
b1c

Boxplot

b2 <- ggplot(carteira, aes(x = PETR4.SA)) + geom_boxplot()
b2

Customizando

b2c <- ggplot(carteira, aes(x = PETR4.SA)) +
        geom_boxplot() +
        labs(x = "Retornos",
             y = NULL,
             title = "Petrobrás: Retornos das Ações") + 
       xlim(-0.3, 0.3)
b2c

Boxplot

b3 <- ggplot(carteira, aes(x = WEGE3.SA)) + geom_boxplot()
b3

Customizando

b3c <- ggplot(carteira, aes(x = WEGE3.SA)) +
       geom_boxplot() +
       labs(x = "Retornos",
            y = NULL,
            title = "WEG: Retornos das Ações") +
       xlim(-0.3, 0.3)
b3c

Boxplot: Múltiplos gráficos em um painel

library(patchwork)
painel03 <- b1c / b2c / b3c
painel03

Visualizando distribuições: Gráfico de Barras

Covariação entre Variáveis Numéricas

Gráficos de Dispersão:

Covariação: Dispersão e \(r_{xy}\)

Covariação: Gráfico de Dispersão

ggplot(data = carteira) +
  geom_point(mapping = aes(x = VALE, y = PETR4.SA))

Covariação: Gráfico de Dispersão

ggplot(data = carteira) +
  geom_bin2d(mapping = aes(x = VALE, y = PETR4.SA))

Covariação: Gráfico de Dispersão

ggplot(data = carteira) +
  geom_point(mapping = aes(x = VALE, y = PETR4.SA)) +
  geom_smooth(mapping = aes(x = VALE, y = PETR4.SA), method = "lm", se = FALSE)

Covariação: Gráfico de Dispersão

ggplot(data = carteira) +
  geom_point(mapping = aes(x = WEGE3.SA, y = PETR4.SA))

Covariação: Gráfico de Dispersão

ggplot(data = carteira) +
  geom_bin2d(mapping = aes(x = WEGE3.SA, y = PETR4.SA))

Covariação: Gráfico de Dispersão

ggplot(data = carteira) +
  geom_point(mapping = aes(x = WEGE3.SA, y = PETR4.SA)) +
  geom_smooth(mapping = aes(x = WEGE3.SA, y = PETR4.SA), method = "lm", se = FALSE)

Covariação: Gráfico de Dispersão

ggplot(data = carteira) +
  geom_point(mapping = aes(x = WEGE3.SA, y = VALE))

Covariação: Gráfico de Dispersão

ggplot(data = carteira) +
  geom_bin2d(mapping = aes(x = WEGE3.SA, y = VALE))

Covariação: Gráfico de Dispersão

ggplot(data = carteira) +
  geom_point(mapping = aes(x = WEGE3.SA, y = VALE)) +
  geom_smooth(mapping = aes(x = WEGE3.SA, y = VALE), method = "lm", se = FALSE)

Tudo ao Mesmo Tempo

library(PerformanceAnalytics)
chart.Correlation(carteira, histogram = TRUE)

Gráficos de Linha para Séries Temporais

Características observáveis em gráficos de séries temporais:

Sistema Gerenciador de Séries do Banco Central do Brasil

library(GetBCBData)
library(ggplot2)

# define ids
id.series <- c(utilizacao_capacidade_instalada = 1344)
first.date = '2010-01-01'

# obtem serie do bcb
df_uci <- gbcbd_get_series(id = id.series,
                            first.date = first.date,
                            last.date = Sys.Date(), 
                            use.memoise = FALSE)

# grafico de linha via ggplot2
ggplot(data = df_uci, aes(x = ref.date, y = value)) + 
  geom_line(color = "blue") + 
  labs(x = 'Trimestre', y = 'Utilização da Capacidade Instalada (%)', 
       title  = 'Utilização da capacidade instalada - Geral (FGV)',
       subtitle = "Periodicidade: Trimestral",
       caption = "Fonte: Elaborado pelo Autor com dados da FGV") 

Gráfico de Linha para Séries Temporais